<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
        <head><title>object Memo in scalaz.memo</title>
        <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"></meta><meta content="scaladoc (version 2.6.1-final)" name="generator"></meta><link href="../../style.css" type="text/css" rel="stylesheet"></link><script type="text/javascript" src="../../script.js"></script>
        </head>
        <body onload="init()">
        <table summary="" class="navigation">
        <tr>
          <td class="navigation-links" valign="top">
            <!-- <table><tr></tr></table> -->
          </td>
          <td align="right" valign="top" style="white-space:nowrap;" rowspan="2">
            <div class="doctitle-larger">Scalaz 2.3</div>
          </td>
        </tr>
        <tr><td></td></tr>
      </table><div align="right"><img alt="Workingmouse" src="http://projects.workingmouse.com/public/resources/images/logo_full_transparent.png"></img></div>
        
      <div class="entity">
        <a href="../../scalaz/memo$package.html" target="_self">scalaz.memo</a>
        <br></br>
        <span class="entity">object  Memo</span>
      </div><hr></hr>
      <div class="source">
        [source: <a href="" class="scalaz/memo/Memo"><code>scalaz/memo/Memo.scala</code></a>]
      </div><hr></hr>
      <a name="Memo"></a><dl>
      <dt>
        
        <code></code>
        <code>object</code>
        <em>Memo</em>
      </dt>
      <dd><code> extends </code><a href="../../scala/AnyRef.html" target="_self">AnyRef</a></dd>
    </dl>
      <dl><dd>Functions creating memoisation types.</dd></dl>
      <dl></dl>
    
      


<table summary="" cellpadding="3" class="member">
      <tr><td class="title" colspan="2">Method Summary</td></tr>
      <tr>
      <td class="modifiers" valign="top"> 
        <code> def</code>
      </td>
      <td class="signature">
        <em><a href="../../scalaz/memo/Memo$object.html#arrayMemo%28Int%29" target="_self">arrayMemo</a></em>
        [<em>V</em>](<em>size</em> : <a href="../../scala/Int.html" target="_self">Int</a>) : <a href="../../scalaz/memo/Memo.html" target="_self">Memo</a>[<a href="../../scala/Int.html" target="_self">Int</a>, <a href="../../scalaz/memo/Memo$object.html#arrayMemo%28Int%29#V" target="_self">V</a>]
        
        <div>A memoisation technique backed with an <code>Array</code>.</div>
      </td>
    </tr>
<tr>
      <td class="modifiers" valign="top"> 
        <code> def</code>
      </td>
      <td class="signature">
        <em><a href="../../scalaz/memo/Memo$object.html#immutableEmptyMapMemo" target="_self">immutableEmptyMapMemo</a></em>
        [<em>K</em>, <em>V</em>] : <a href="../../scalaz/memo/Memo.html" target="_self">Memo</a>[<a href="../../scalaz/memo/Memo$object.html#immutableEmptyMapMemo#K" target="_self">K</a>, <a href="../../scalaz/memo/Memo$object.html#immutableEmptyMapMemo#V" target="_self">V</a>]
        
        <div>A memoisation technique backed with an immutable <code>EmptyMap</code>.</div>
      </td>
    </tr>
<tr>
      <td class="modifiers" valign="top"> 
        <code> def</code>
      </td>
      <td class="signature">
        <em><a href="../../scalaz/memo/Memo$object.html#immutableHashMapMemo" target="_self">immutableHashMapMemo</a></em>
        [<em>K</em>, <em>V</em>] : <a href="../../scalaz/memo/Memo.html" target="_self">Memo</a>[<a href="../../scalaz/memo/Memo$object.html#immutableHashMapMemo#K" target="_self">K</a>, <a href="../../scalaz/memo/Memo$object.html#immutableHashMapMemo#V" target="_self">V</a>]
        
        <div>A memoisation technique backed with an immutable <code>HashMap</code>.</div>
      </td>
    </tr>
<tr>
      <td class="modifiers" valign="top"> 
        <code> def</code>
      </td>
      <td class="signature">
        <em><a href="../../scalaz/memo/Memo$object.html#immutableListMapMemo" target="_self">immutableListMapMemo</a></em>
        [<em>K</em>, <em>V</em>] : <a href="../../scalaz/memo/Memo.html" target="_self">Memo</a>[<a href="../../scalaz/memo/Memo$object.html#immutableListMapMemo#K" target="_self">K</a>, <a href="../../scalaz/memo/Memo$object.html#immutableListMapMemo#V" target="_self">V</a>]
        
        <div>A memoisation technique backed with an immutable <code>ListMap</code>.</div>
      </td>
    </tr>
<tr>
      <td class="modifiers" valign="top"> 
        <code> def</code>
      </td>
      <td class="signature">
        <em><a href="../../scalaz/memo/Memo$object.html#immutableTreeMapMemo%28%28K%29%3D%3EOrdered%5BK%5D%29" target="_self">immutableTreeMapMemo</a></em>
        [<em>K</em>, <em>V</em>](<code>implicit </code><em>view$1</em> : (<a href="../../scalaz/memo/Memo$object.html#immutableTreeMapMemo%28%28K%29%3D%3EOrdered%5BK%5D%29#K" target="_self">K</a>) =&gt; <a href="" target="contentFrame" class="scala/Ordered">scala.Ordered</a>[<a href="../../scalaz/memo/Memo$object.html#immutableTreeMapMemo%28%28K%29%3D%3EOrdered%5BK%5D%29#K" target="_self">K</a>]) : <a href="../../scalaz/memo/Memo.html" target="_self">Memo</a>[<a href="../../scalaz/memo/Memo$object.html#immutableTreeMapMemo%28%28K%29%3D%3EOrdered%5BK%5D%29#K" target="_self">K</a>, <a href="../../scalaz/memo/Memo$object.html#immutableTreeMapMemo%28%28K%29%3D%3EOrdered%5BK%5D%29#V" target="_self">V</a>]
        
        <div>A memoisation technique backed with an immutable <code>TreeMap</code>.</div>
      </td>
    </tr>
<tr>
      <td class="modifiers" valign="top"> 
        <code> def</code>
      </td>
      <td class="signature">
        <em><a href="../../scalaz/memo/Memo$object.html#immutableUnbalancedTreeMapMemo%28%28K%29%3D%3EOrdered%5BK%5D%29" target="_self">immutableUnbalancedTreeMapMemo</a></em>
        [<em>K</em>, <em>V</em>](<code>implicit </code><em>view$2</em> : (<a href="../../scalaz/memo/Memo$object.html#immutableUnbalancedTreeMapMemo%28%28K%29%3D%3EOrdered%5BK%5D%29#K" target="_self">K</a>) =&gt; <a href="" target="contentFrame" class="scala/Ordered">scala.Ordered</a>[<a href="../../scalaz/memo/Memo$object.html#immutableUnbalancedTreeMapMemo%28%28K%29%3D%3EOrdered%5BK%5D%29#K" target="_self">K</a>]) : <a href="../../scalaz/memo/Memo.html" target="_self">Memo</a>[<a href="../../scalaz/memo/Memo$object.html#immutableUnbalancedTreeMapMemo%28%28K%29%3D%3EOrdered%5BK%5D%29#K" target="_self">K</a>, <a href="../../scalaz/memo/Memo$object.html#immutableUnbalancedTreeMapMemo%28%28K%29%3D%3EOrdered%5BK%5D%29#V" target="_self">V</a>]
        
        <div>A memoisation technique backed with an immutable <code>UnbalancedTreeMap</code>.</div>
      </td>
    </tr>
<tr>
      <td class="modifiers" valign="top"> 
        <code> def</code>
      </td>
      <td class="signature">
        <em><a href="../../scalaz/memo/Memo$object.html#mutableHashMapMemo" target="_self">mutableHashMapMemo</a></em>
        [<em>K</em>, <em>V</em>] : <a href="../../scalaz/memo/Memo.html" target="_self">Memo</a>[<a href="../../scalaz/memo/Memo$object.html#mutableHashMapMemo#K" target="_self">K</a>, <a href="../../scalaz/memo/Memo$object.html#mutableHashMapMemo#V" target="_self">V</a>]
        
        <div>A memoisation technique backed with a mutable <code>HashMap</code>.</div>
      </td>
    </tr>
<tr>
      <td class="modifiers" valign="top"> 
        <code> def</code>
      </td>
      <td class="signature">
        <em><a href="../../scalaz/memo/Memo$object.html#nilMemo" target="_self">nilMemo</a></em>
        [<em>K</em>, <em>V</em>] : <a href="../../scalaz/memo/Memo.html" target="_self">Memo</a>[<a href="../../scalaz/memo/Memo$object.html#nilMemo#K" target="_self">K</a>, <a href="../../scalaz/memo/Memo$object.html#nilMemo#V" target="_self">V</a>]
        
        <div>A memoisation technique.</div>
      </td>
    </tr>
      </table><table summary="" cellpadding="3" class="inherited">
        <tr><td class="title" colspan="2">
          Methods inherited from <a href="../../scala/AnyRef.html" target="_self">AnyRef</a>
        </td></tr>
        <tr><td class="signature" colspan="2">
          <a href="../../scala/AnyRef.html#getClass%28%29" target="_self">getClass</a>, <a href="../../scala/AnyRef.html#hashCode%28%29" target="_self">hashCode</a>, <a href="../../scala/AnyRef.html#equals%28Any%29" target="_self">equals</a>, <a href="../../scala/AnyRef.html#clone%28%29" target="_self">clone</a>, <a href="../../scala/AnyRef.html#toString%28%29" target="_self">toString</a>, <a href="../../scala/AnyRef.html#notify%28%29" target="_self">notify</a>, <a href="../../scala/AnyRef.html#notifyAll%28%29" target="_self">notifyAll</a>, <a href="../../scala/AnyRef.html#wait%28Long%29" target="_self">wait</a>, <a href="../../scala/AnyRef.html#wait%28Long%2CInt%29" target="_self">wait</a>, <a href="../../scala/AnyRef.html#wait%28%29" target="_self">wait</a>, <a href="../../scala/AnyRef.html#finalize%28%29" target="_self">finalize</a>, <a href="../../scala/AnyRef.html#%3D%3D%28AnyRef%29" target="_self">==</a>, <a href="../../scala/AnyRef.html#%21%3D%28AnyRef%29" target="_self">!=</a>, <a href="../../scala/AnyRef.html#eq%28AnyRef%29" target="_self">eq</a>, <a href="../../scala/AnyRef.html#ne%28AnyRef%29" target="_self">ne</a>, <a href="../../scala/AnyRef.html#synchronized%28T0%29" target="_self">synchronized</a>
        </td></tr>
      </table><table summary="" cellpadding="3" class="inherited">
        <tr><td class="title" colspan="2">
          Methods inherited from <a href="../../scala/Any.html" target="_self">Any</a>
        </td></tr>
        <tr><td class="signature" colspan="2">
          <a href="../../scala/Any.html#%3D%3D%28Any%29" target="_self">==</a>, <a href="../../scala/Any.html#%21%3D%28Any%29" target="_self">!=</a>, <a href="../../scala/Any.html#isInstanceOf" target="_self">isInstanceOf</a>, <a href="../../scala/Any.html#asInstanceOf" target="_self">asInstanceOf</a>
        </td></tr>
      </table>


      


<table summary="" cellpadding="3" class="member-detail">
          <tr><td class="title">Method Details</td></tr>
        </table><div><a name="nilMemo"></a><dl>
      <dt>
        
        <code></code>
        <code>def</code>
        <em>nilMemo</em>[<em>K</em>, <em>V</em>] : <a href="../../scalaz/memo/Memo.html" target="_self">Memo</a>[<a href="../../scalaz/memo/Memo$object.html#nilMemo#K" target="_self">K</a>, <a href="../../scalaz/memo/Memo$object.html#nilMemo#V" target="_self">V</a>]
      </dt>
      <dd></dd>
    </dl>
      <dl><dd>A memoisation technique.</dd></dl>
      <dl><dt style="margin:10px 0 0 20px;">
        <b>Returns</b></dt><dd>a memoisation technique where each application explicitly invokes the memo function. No attempt to store   the computation is made.</dd></dl>
    <hr></hr>
<a name="arrayMemo%28Int%29"></a><dl>
      <dt>
        
        <code></code>
        <code>def</code>
        <em>arrayMemo</em>[<em>V</em>](<em>size</em> : <a href="../../scala/Int.html" target="_self">Int</a>) : <a href="../../scalaz/memo/Memo.html" target="_self">Memo</a>[<a href="../../scala/Int.html" target="_self">Int</a>, <a href="../../scalaz/memo/Memo$object.html#arrayMemo%28Int%29#V" target="_self">V</a>]
      </dt>
      <dd></dd>
    </dl>
      <dl><dd>A memoisation technique backed with an <code>Array</code>.</dd></dl>
      <dl><dt style="margin:10px 0 0 20px;">
        <b>Parameters</b></dt><dd><code>size - </code>The size of the array to back the memoisation table with. An attempts to perform lookups outside of the   range is undefined.</dd><dt style="margin:10px 0 0 20px;">
        <b>Returns</b></dt><dd>a memoisation technique where each application is first looked up in the array at the given index to the   memo function and if already computed, returns the associated value. Otherwise, the memo function is invoked and
   its value is stored in the mutable <code>Array</code>. An attempt to invoke the memo function outside of the range
   of the array (<code>0 to size - 1 inclusive</code>) is non-terminating/undefined.</dd></dl>
    <hr></hr>
<a name="mutableHashMapMemo"></a><dl>
      <dt>
        
        <code></code>
        <code>def</code>
        <em>mutableHashMapMemo</em>[<em>K</em>, <em>V</em>] : <a href="../../scalaz/memo/Memo.html" target="_self">Memo</a>[<a href="../../scalaz/memo/Memo$object.html#mutableHashMapMemo#K" target="_self">K</a>, <a href="../../scalaz/memo/Memo$object.html#mutableHashMapMemo#V" target="_self">V</a>]
      </dt>
      <dd></dd>
    </dl>
      <dl><dd>A memoisation technique backed with a mutable <code>HashMap</code>.</dd></dl>
      <dl><dt style="margin:10px 0 0 20px;">
        <b>Returns</b></dt><dd>a memoisation technique where each application is first looked up in a mutable <code>HashMap</code> and if   already computed, returns the associated value. Otherwise, the memo function is invoked and its value is stored in
   the mutable <code>HashMap</code>.</dd></dl>
    <hr></hr>
<a name="immutableEmptyMapMemo"></a><dl>
      <dt>
        
        <code></code>
        <code>def</code>
        <em>immutableEmptyMapMemo</em>[<em>K</em>, <em>V</em>] : <a href="../../scalaz/memo/Memo.html" target="_self">Memo</a>[<a href="../../scalaz/memo/Memo$object.html#immutableEmptyMapMemo#K" target="_self">K</a>, <a href="../../scalaz/memo/Memo$object.html#immutableEmptyMapMemo#V" target="_self">V</a>]
      </dt>
      <dd></dd>
    </dl>
      <dl><dd>A memoisation technique backed with an immutable <code>EmptyMap</code>.</dd></dl>
      <dl><dt style="margin:10px 0 0 20px;">
        <b>Returns</b></dt><dd>a memoisation technique where each application is first looked up in the map and if already computed,   returns the associated value. Otherwise, the memo function is invoked and its value is stored in the immutable map.</dd></dl>
    <hr></hr>
<a name="immutableHashMapMemo"></a><dl>
      <dt>
        
        <code></code>
        <code>def</code>
        <em>immutableHashMapMemo</em>[<em>K</em>, <em>V</em>] : <a href="../../scalaz/memo/Memo.html" target="_self">Memo</a>[<a href="../../scalaz/memo/Memo$object.html#immutableHashMapMemo#K" target="_self">K</a>, <a href="../../scalaz/memo/Memo$object.html#immutableHashMapMemo#V" target="_self">V</a>]
      </dt>
      <dd></dd>
    </dl>
      <dl><dd>A memoisation technique backed with an immutable <code>HashMap</code>.</dd></dl>
      <dl><dt style="margin:10px 0 0 20px;">
        <b>Returns</b></dt><dd>a memoisation technique where each application is first looked up in the map and if already computed,   returns the associated value. Otherwise, the memo function is invoked and its value is stored in the immutable map.</dd></dl>
    <hr></hr>
<a name="immutableListMapMemo"></a><dl>
      <dt>
        
        <code></code>
        <code>def</code>
        <em>immutableListMapMemo</em>[<em>K</em>, <em>V</em>] : <a href="../../scalaz/memo/Memo.html" target="_self">Memo</a>[<a href="../../scalaz/memo/Memo$object.html#immutableListMapMemo#K" target="_self">K</a>, <a href="../../scalaz/memo/Memo$object.html#immutableListMapMemo#V" target="_self">V</a>]
      </dt>
      <dd></dd>
    </dl>
      <dl><dd>A memoisation technique backed with an immutable <code>ListMap</code>.</dd></dl>
      <dl><dt style="margin:10px 0 0 20px;">
        <b>Returns</b></dt><dd>a memoisation technique where each application is first looked up in the map and if already computed,   returns the associated value. Otherwise, the memo function is invoked and its value is stored in the immutable map.</dd></dl>
    <hr></hr>
<a name="immutableTreeMapMemo%28%28K%29%3D%3EOrdered%5BK%5D%29"></a><dl>
      <dt>
        
        <code></code>
        <code>def</code>
        <em>immutableTreeMapMemo</em>[<em>K</em>, <em>V</em>](<code>implicit </code><em>view$1</em> : (<a href="../../scalaz/memo/Memo$object.html#immutableTreeMapMemo%28%28K%29%3D%3EOrdered%5BK%5D%29#K" target="_self">K</a>) =&gt; <a href="" target="contentFrame" class="scala/Ordered">scala.Ordered</a>[<a href="../../scalaz/memo/Memo$object.html#immutableTreeMapMemo%28%28K%29%3D%3EOrdered%5BK%5D%29#K" target="_self">K</a>]) : <a href="../../scalaz/memo/Memo.html" target="_self">Memo</a>[<a href="../../scalaz/memo/Memo$object.html#immutableTreeMapMemo%28%28K%29%3D%3EOrdered%5BK%5D%29#K" target="_self">K</a>, <a href="../../scalaz/memo/Memo$object.html#immutableTreeMapMemo%28%28K%29%3D%3EOrdered%5BK%5D%29#V" target="_self">V</a>]
      </dt>
      <dd></dd>
    </dl>
      <dl><dd>A memoisation technique backed with an immutable <code>TreeMap</code>.</dd></dl>
      <dl><dt style="margin:10px 0 0 20px;">
        <b>Returns</b></dt><dd>a memoisation technique where each application is first looked up in the map and if already computed,   returns the associated value. Otherwise, the memo function is invoked and its value is stored in the immutable map.</dd></dl>
    <hr></hr>
<a name="immutableUnbalancedTreeMapMemo%28%28K%29%3D%3EOrdered%5BK%5D%29"></a><dl>
      <dt>
        
        <code></code>
        <code>def</code>
        <em>immutableUnbalancedTreeMapMemo</em>[<em>K</em>, <em>V</em>](<code>implicit </code><em>view$2</em> : (<a href="../../scalaz/memo/Memo$object.html#immutableUnbalancedTreeMapMemo%28%28K%29%3D%3EOrdered%5BK%5D%29#K" target="_self">K</a>) =&gt; <a href="" target="contentFrame" class="scala/Ordered">scala.Ordered</a>[<a href="../../scalaz/memo/Memo$object.html#immutableUnbalancedTreeMapMemo%28%28K%29%3D%3EOrdered%5BK%5D%29#K" target="_self">K</a>]) : <a href="../../scalaz/memo/Memo.html" target="_self">Memo</a>[<a href="../../scalaz/memo/Memo$object.html#immutableUnbalancedTreeMapMemo%28%28K%29%3D%3EOrdered%5BK%5D%29#K" target="_self">K</a>, <a href="../../scalaz/memo/Memo$object.html#immutableUnbalancedTreeMapMemo%28%28K%29%3D%3EOrdered%5BK%5D%29#V" target="_self">V</a>]
      </dt>
      <dd></dd>
    </dl>
      <dl><dd>A memoisation technique backed with an immutable <code>UnbalancedTreeMap</code>.</dd></dl>
      <dl><dt style="margin:10px 0 0 20px;">
        <b>Returns</b></dt><dd>a memoisation technique where each application is first looked up in the map and if already computed,   returns the associated value. Otherwise, the memo function is invoked and its value is stored in the immutable map.</dd></dl>
    <hr></hr></div>


    <hr></hr>
        <table summary="" class="navigation">
        <tr>
          <td class="navigation-links" valign="top">
            <!-- <table><tr></tr></table> -->
          </td>
          <td align="right" valign="top" style="white-space:nowrap;" rowspan="2">
            <div class="doctitle-larger">Scalaz 2.3</div>
          </td>
        </tr>
        <tr><td></td></tr>
      </table>
      </body>
      </html>